package com.test.source;

import java.util.Map;

/**
 * 一个自定义的属性源类，用于从Map中获取属性值
 * 继承自PropertySource类，用于处理Map类型的属性源
 */
public class MapPropertySource extends PropertySource<Map<String, Object>>{

    /**
     * 构造一个新的MapPropertySource实例
     *
     * @param name 属性源的名称，用于标识属性源
     * @param source 属性源的数据，存储键值对形式的属性
     */
    public MapPropertySource(String name, Map<String, Object> source) {
        super(name, source);
    }

    /**
     * 根据属性名获取属性值
     *
     * @param name 属性的名称
     * @return 属性的值，如果不存在则返回null
     */
    @Override
    public Object getProperty(String name) {
        return this.source.get(name);
    }

    /**
     * 判断属性源是否包含指定名称的属性
     *
     * @param name 属性的名称
     * @return 如果包含指定名称的属性则返回true，否则返回false
     */
    @Override
    public boolean containsProperty(String name) {
        return this.source.containsKey(name);
    }
}
